package com.bbzn.device.client.service;

import com.bbzn.device.client.dto.api.ct.request.RequestCreateProduct;
import com.bbzn.device.client.dto.api.ct.request.RequestQueryProductList;
import com.bbzn.device.client.dto.api.ct.request.RequestUpdateProduct;
import com.ctg.ag.sdk.biz.aep_product_management.*;

/**
 * 产品管理
 * @Author wulongbo
 * @Date 2021/9/6 15:27
 * @Version 1.0
 */
public interface ProductManagementService {

    /**
     * 添加产品(产品为设备直连+非NB网关协议)
     * @param requestCreateProduct
     * @return
     * @throws Exception
     */
    CreateProductResponse createProduct(RequestCreateProduct requestCreateProduct) throws Exception;

    /**
     * 删除产品(产品为设备直连+非NB网关协议)
     * @param productId
     * @return
     * @throws Exception
     */
    DeleteProductResponse deleteProduct(String masterKey, Integer productId) throws Exception;

    /**
     * 查询单个产品数据
     * @param productId
     * @return
     * @throws Exception
     */
    QueryProductResponse queryProduct(Integer productId) throws Exception;

    /**
     * 批量查询产品信息
     * @param requestQueryProductList
     * @return
     * @throws Exception
     */
    QueryProductListResponse queryProductList(RequestQueryProductList requestQueryProductList) throws Exception;

    /**
     * 编辑产品(产品为设备直连+非NB网关协议)
     * @param requestUpdateProduct
     * @return
     * @throws Exception
     */
    UpdateProductResponse updateProduct(RequestUpdateProduct requestUpdateProduct) throws Exception;
}
